﻿using System.Collections.Generic;

namespace QQLogin
{
    public interface ISmsPlatform
    {
        /// <summary>
        /// 平台类型
        /// </summary>
        string SmsType { get; }
        /// <summary>
        /// 用户名
        /// </summary>
        string UserName { get; set; }
        /// <summary>
        /// 密码
        /// </summary>
        string Password { get; set; }
        /// <summary>
        /// 接口ID
        /// </summary>
        string Uid { get; set; }
        /// <summary>
        /// Token
        /// </summary>
        string Token { get; set; }
        /// <summary>
        /// 余额
        /// </summary>
        double Balance { get; set; }
        /// <summary>
        /// 作者ID
        /// </summary>
        string AuthorUid { get; set; }
        /// <summary>
        /// 项目ID
        /// </summary>
        int Pid { get; set; }
        /// <summary>
        /// 需要二次获取
        /// </summary>
        bool NeedTwiceGet { get; }

        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        bool Login(string userName, string password, out string msg);
        /// <summary>
        /// 获取手机号码
        /// </summary>
        /// <param name="mobile"></param>
        /// <param name="province"></param>
        /// <param name="_operator"></param>
        /// <param name="vno"></param>
        /// <param name="section">号段限制</param>
        /// <returns></returns>
        SmsModel GetMobileNum(string mobile = "", string province = "", MobileOperatorEnum _operator = MobileOperatorEnum.任意平台, SmsVno vno = SmsVno.获取任意号段, List<int> section = null);
        /// <summary>
        /// 获取验证码
        /// </summary>
        /// <param name="mobile"></param>
        /// <returns></returns>
        SmsModel GetCode(string mobile);
        /// <summary>
        /// 添加忽略号码
        /// </summary>
        /// <param name="mobile"></param>
        void AddIgnoreList(string mobile);
    }
}
